# libraries
library(lubridate)
library(plotly)
library(readr)
library(tidyverse)
# data
scoobydoo <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2021/2021-07-13/scoobydoo.csv')
Introduction
This weeks Tidy Tuesday dataset comes from Kaggle by way of manual data aggregation from plummye.
Every Scooby-Doo episode and movie’s various variables.
Took ~1 year to watch every Scooby-Doo iteration and track every variable. Many values are subjective by nature of watching but I tried my hardest to keep the data collection consistent.
If you plan to use this data for anything school/entertainment related you are free to (credit is always welcome).
Exploratory Data Analysis
IMDb Time Series
Seasons
## get summary info for each season
season_info <- scoobydoo %>%
mutate(
year = year(date_aired),
imdb = as.double(imdb),
engagement = as.double(engagement)
) %>%
group_by(series_name, network, season) %>%
dplyr::summarise(
season_start = min(date_aired),
season_end = max(date_aired),
n_episodes = n(),
mean_imdb = mean(imdb, na.rm = TRUE),
mean_engagement = mean(engagement, na.rm = TRUE)
) %>%
ungroup() %>%
filter(n_episodes > 1 & !(season %in% c("Movie", "Special"))) %>% # filter out movie events
arrange(season_start, season_end) %>%
mutate(
season_id = as.double(row_number())
)
season_info <- season_info %>%
mutate(
ranking = case_when(
season_id == head(arrange(season_info, desc(mean_imdb)), 1)$season_id ~ "Best Season",
season_id %in% head(arrange(season_info, desc(mean_imdb)), 3)$season_id ~ "Top 3 Season",
season_id == head(arrange(season_info, mean_imdb), 1)$season_id ~ "Worst Season",
season_id %in% head(arrange(season_info, mean_imdb), 3)$season_id ~ "Bottom 3 Season",
TRUE ~ "Other"
),
ranking = factor(ranking, levels = c("Best Season", "Top 3 Season", "Other", "Bottom 3 Season", "Worst Season"))
)
The average Scooby Doo TV series has 2.0625 seasons. That’s so few!
Monsters
Distribution of Gender
Distribution By Type
And subtype?
Or Species?
Who caught the monsters?
Who captured the monsters?
Who unmasked the monsters?
What percent of monsters got away?
Were not captured?
Which characters got the most scooby snacks?
LS0tDQp0aXRsZTogIjIwMjEwNzEzIC0gU2Nvb2J5IERvbyINCmF1dGhvcjogIk5pY2sgQ3J1aWNrc2hhbmsiDQpkYXRlOiAiNy8xNC8yMDIxIg0Kb3V0cHV0OiANCiAgaHRtbF9ub3RlYm9vazoNCiAgICB0b2M6IHRydWUNCiAgICBkZl9wcmludDogcGFnZWQNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSkNCmBgYA0KDQpgYGB7ciBsaWJyYXJpZXN9DQojIGxpYnJhcmllcw0KbGlicmFyeShmb3JjYXRzKQ0KbGlicmFyeShsdWJyaWRhdGUpDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmBgYA0KDQpgYGB7cn0NCiMgZGF0YQ0Kc2Nvb2J5ZG9vIDwtIHJlYWRyOjpyZWFkX2NzdignaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Jmb3JkYXRhc2NpZW5jZS90aWR5dHVlc2RheS9tYXN0ZXIvZGF0YS8yMDIxLzIwMjEtMDctMTMvc2Nvb2J5ZG9vLmNzdicpDQpgYGANCg0KIVtzY29vYnkgZG9vXShodHRwczovL21lZGlhLmF2YWxvbmhpbGwud2l6YXJkcy5jb20vc3R5bGVzL3NlY29uZF9odWJwYWdlX2Jhbm5lci9wdWJsaWMvaW1hZ2VzL2R5bmFtaWNodWJwYWdlL2x3Y2xrd2N3cWNuLmpwZykNCg0KIyBJbnRyb2R1Y3Rpb24NCg0KVGhpcyB3ZWVrcyBbVGlkeSBUdWVzZGF5XShodHRwczovL2dpdGh1Yi5jb20vcmZvcmRhdGFzY2llbmNlL3RpZHl0dWVzZGF5L3RyZWUvbWFzdGVyL2RhdGEvMjAyMS8yMDIxLTA3LTEzKSBkYXRhc2V0IGNvbWVzIGZyb20gW0thZ2dsZV0oaHR0cHM6Ly93d3cua2FnZ2xlLmNvbS93aWxsaWFtc2Nob29sZW1hbi9zY29vYnlkb28tY29tcGxldGUpIGJ5IHdheSBvZiBtYW51YWwgZGF0YSBhZ2dyZWdhdGlvbiBmcm9tIFtwbHVtbXllXShodHRwczovL3d3dy5rYWdnbGUuY29tL3dpbGxpYW1zY2hvb2xlbWFuKS4NCg0KPiBFdmVyeSBTY29vYnktRG9vIGVwaXNvZGUgYW5kIG1vdmllJ3MgdmFyaW91cyB2YXJpYWJsZXMuDQo+DQo+IFRvb2sgfjEgeWVhciB0byB3YXRjaCBldmVyeSBTY29vYnktRG9vIGl0ZXJhdGlvbiBhbmQgdHJhY2sgZXZlcnkgdmFyaWFibGUuIE1hbnkgdmFsdWVzIGFyZSBzdWJqZWN0aXZlIGJ5IG5hdHVyZSBvZiB3YXRjaGluZyBidXQgSSB0cmllZCBteSBoYXJkZXN0IHRvIGtlZXAgdGhlIGRhdGEgY29sbGVjdGlvbiBjb25zaXN0ZW50Lg0KPg0KPiBJZiB5b3UgcGxhbiB0byB1c2UgdGhpcyBkYXRhIGZvciBhbnl0aGluZyBzY2hvb2wvZW50ZXJ0YWlubWVudCByZWxhdGVkIHlvdSBhcmUgZnJlZSB0byAoY3JlZGl0IGlzIGFsd2F5cyB3ZWxjb21lKS4NCg0KIyBFeHBsb3JhdG9yeSBEYXRhIEFuYWx5c2lzDQoNCmBgYHtyfQ0Kc2Nvb2J5ZG9vICU+JSBoZWFkKDUpDQpgYGANCg0KYGBge3J9DQojIHRpZHkgZGF0YSANCg0KYGBgDQoNCmBgYHtyfQ0KIyB2YWx1ZXMNCmNvbG9yX3NjaGVtZTEgPC0gYygNCiAgIiMyMjhCMjIiLCMgYWthIGZvcmVzdCBncmVlbiAoQmVzdCkNCiAgIiM5OEZCOTgiLCAjIGFrYSBwYWxlIGdyZWVuIChUb3AgMykNCiAgIiNEM0QzRDMiLCAjIGFrYSBsaWdodCBncmV5IChPdGhlcikNCiAgIiNGRkI2QzEiLCAjIGFrYSBsaWdodCBwaW5rIChCb3R0b20gMykNCiAgIiNEQzE0M0MiICMgYWthIGNyaW1zb24gKFdvcnN0KQ0KICApDQpgYGANCg0KDQojIyBJTURiIFRpbWUgU2VyaWVzDQoNCiMjIyBTZXJpZXMNCg0KYGBge3J9DQojIyBnZXQgc3VtbWFyeSBpbmZvIGZvciBlYWNoIHNlYXNvbg0Kc2VyaWVzX2luZm8gPC0gc2Nvb2J5ZG9vICU+JQ0KICBtdXRhdGUoDQogICAgeWVhciA9IHllYXIoZGF0ZV9haXJlZCksDQogICAgaW1kYiA9IGFzLmRvdWJsZShpbWRiKSwNCiAgICBlbmdhZ2VtZW50ID0gYXMuZG91YmxlKGVuZ2FnZW1lbnQpDQogICkgJT4lDQogIGdyb3VwX2J5KHNlcmllc19uYW1lLCBuZXR3b3JrKSAlPiUNCiAgZHBseXI6OnN1bW1hcmlzZSgNCiAgICBzZXJpZXNfc3RhcnQgPSBtaW4oZGF0ZV9haXJlZCksDQogICAgc2VyaWVzX2VuZCA9IG1heChkYXRlX2FpcmVkKSwNCiAgICBuX2VwaXNvZGVzID0gbigpLA0KICAgIG1lYW5faW1kYiA9IG1lYW4oaW1kYiwgbmEucm0gPSBUUlVFKSwNCiAgICBtZWFuX2VuZ2FnZW1lbnQgPSBtZWFuKGVuZ2FnZW1lbnQsIG5hLnJtID0gVFJVRSkNCiAgKSAlPiUNCiAgdW5ncm91cCgpICU+JQ0KICBmaWx0ZXIobl9lcGlzb2RlcyA+IDEpICU+JSAjIGZpbHRlciBvdXQgbW92aWUgZXZlbnRzDQogIGFycmFuZ2Uoc2VyaWVzX3N0YXJ0LCBzZXJpZXNfZW5kKSAlPiUNCiAgbXV0YXRlKA0KICAgIHNlcmllc19pZCA9IGFzLmRvdWJsZShyb3dfbnVtYmVyKCkpDQogICkNCg0Kc2VyaWVzX2luZm8gPC0gc2VyaWVzX2luZm8gJT4lDQogIG11dGF0ZSgNCiAgICByYW5raW5nID0gY2FzZV93aGVuKA0KICAgICAgc2VyaWVzX2lkID09IGhlYWQoYXJyYW5nZShzZXJpZXNfaW5mbywgZGVzYyhtZWFuX2ltZGIpKSwgMSkkc2VyaWVzX2lkIH4gIkJlc3QgU2VyaWVzIiwNCiAgICAgIHNlcmllc19pZCAlaW4lIGhlYWQoYXJyYW5nZShzZXJpZXNfaW5mbywgZGVzYyhtZWFuX2ltZGIpKSwgMykkc2VyaWVzX2lkIH4gIlRvcCAzIFNlcmllcyIsDQogICAgICBzZXJpZXNfaWQgPT0gaGVhZChhcnJhbmdlKHNlcmllc19pbmZvLCBtZWFuX2ltZGIpLCAxKSRzZXJpZXNfaWQgfiAiV29yc3QgU2VyaWVzIiwNCiAgICAgIHNlcmllc19pZCAlaW4lIGhlYWQoYXJyYW5nZShzZXJpZXNfaW5mbywgbWVhbl9pbWRiKSwgMykkc2VyaWVzX2lkIH4gIkJvdHRvbSAzIFNlcmllcyIsDQogICAgICBUUlVFIH4gIk90aGVyIg0KICAgICksDQogICAgcmFua2luZyA9IGZhY3RvcihyYW5raW5nLCBsZXZlbHMgPSBjKCJCZXN0IFNlcmllcyIsICJUb3AgMyBTZXJpZXMiLCAiT3RoZXIiLCAiQm90dG9tIDMgU2VyaWVzIiwgIldvcnN0IFNlcmllcyIpKQ0KICApDQpgYGANCg0KYGBge3Igc2Nvb2J5IHNlcmllcyBpbWRiIHRpbWVsaW5lfQ0KIyBwbG90IHNlcmllcyBvdmVyIHRpbWUNCnNlcmllc19pbmZvICU+JQ0KICBwbG90X2x5KA0KICAgIHR5cGUgPSAnYmFyJywNCiAgICBtb2RlID0gJ21hcmtlcnMnLA0KICAgIHggPSB+c2VyaWVzX2lkLA0KICAgIHkgPSB+bWVhbl9pbWRiLA0KICAgIGNvbG9yID0gfnJhbmtpbmcsDQogICAgY29sb3JzID0gY29sb3Jfc2NoZW1lMSwNCiAgICB0ZXh0ID0gfnBhc3RlMCgiPGI+Iiwgc2VyaWVzX25hbWUsICI8L2I+PGJyPiIsDQogICAgICAgICAgICAgICAgICAgIjxpPkFpcmVkIGZyb20gIiwgc2VyaWVzX3N0YXJ0LCAiIHRvICIsIHNlcmllc19lbmQsICIgb24gIiwgbmV0d29yaywgIjwvaT48YnI+PGJyPiIsDQogICAgICAgICAgICAgICAgICAgIk1lYW4gSU1EYiBTY29yZTogIiwgcm91bmQobWVhbl9pbWRiLCAyKSwgIiAoTnVtYmVyIG9mIFJldmlld3M6ICIsIHJvdW5kKG1lYW5fZW5nYWdlbWVudCksICIpPGJyPiIsDQogICAgICAgICAgICAgICAgICAgIkVwaXNvZGVzOiAiLCBuX2VwaXNvZGVzLCAiPGJyPiIpDQogICkgJT4lDQogIGxheW91dCgNCiAgICB0aXRsZSA9ICdJTURiIFNjb3JlcyBmb3IgU2Nvb2J5IERvbyBTZXJpZXMgT3ZlciBUaW1lJywNCiAgICB4YXhpcyA9IGxpc3QodGl0bGUgPSAnU2VxdWVudGlhbCBTZXJpZXMgTnVtYmVyJywgc2hvd3RpY2tsYWJlbHMgPSBGQUxTRSksDQogICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gJ01lYW4gSU1EYiBTY29yZScpLA0KICAgIGxlZ2VuZCA9IGxpc3Qob3JpZW50YXRpb24gPSAnaCcsIHkgPSAtMC4zKSwNCiAgICB3aWR0aCA9IDgwMCwNCiAgICBoZWlnaHQgPSA0MDANCiAgKQ0KYGBgDQoNCg0KIyMjIFNlYXNvbnMNCg0KYGBge3J9DQojIyBnZXQgc3VtbWFyeSBpbmZvIGZvciBlYWNoIHNlYXNvbg0Kc2Vhc29uX2luZm8gPC0gc2Nvb2J5ZG9vICU+JQ0KICBtdXRhdGUoDQogICAgeWVhciA9IHllYXIoZGF0ZV9haXJlZCksDQogICAgaW1kYiA9IGFzLmRvdWJsZShpbWRiKSwNCiAgICBlbmdhZ2VtZW50ID0gYXMuZG91YmxlKGVuZ2FnZW1lbnQpDQogICkgJT4lDQogIGdyb3VwX2J5KHNlcmllc19uYW1lLCBuZXR3b3JrLCBzZWFzb24pICU+JQ0KICBkcGx5cjo6c3VtbWFyaXNlKA0KICAgIHNlYXNvbl9zdGFydCA9IG1pbihkYXRlX2FpcmVkKSwNCiAgICBzZWFzb25fZW5kID0gbWF4KGRhdGVfYWlyZWQpLA0KICAgIG5fZXBpc29kZXMgPSBuKCksDQogICAgbWVhbl9pbWRiID0gbWVhbihpbWRiLCBuYS5ybSA9IFRSVUUpLA0KICAgIG1lYW5fZW5nYWdlbWVudCA9IG1lYW4oZW5nYWdlbWVudCwgbmEucm0gPSBUUlVFKQ0KICApICU+JQ0KICB1bmdyb3VwKCkgJT4lDQogIGZpbHRlcihuX2VwaXNvZGVzID4gMSAmICEoc2Vhc29uICVpbiUgYygiTW92aWUiLCAiU3BlY2lhbCIpKSkgJT4lICMgZmlsdGVyIG91dCBtb3ZpZSBldmVudHMNCiAgYXJyYW5nZShzZWFzb25fc3RhcnQsIHNlYXNvbl9lbmQpICU+JQ0KICBtdXRhdGUoDQogICAgc2Vhc29uX2lkID0gYXMuZG91YmxlKHJvd19udW1iZXIoKSkNCiAgKQ0KDQpzZWFzb25faW5mbyA8LSBzZWFzb25faW5mbyAlPiUNCiAgbXV0YXRlKA0KICAgIHJhbmtpbmcgPSBjYXNlX3doZW4oDQogICAgICBzZWFzb25faWQgPT0gaGVhZChhcnJhbmdlKHNlYXNvbl9pbmZvLCBkZXNjKG1lYW5faW1kYikpLCAxKSRzZWFzb25faWQgfiAiQmVzdCBTZWFzb24iLA0KICAgICAgc2Vhc29uX2lkICVpbiUgaGVhZChhcnJhbmdlKHNlYXNvbl9pbmZvLCBkZXNjKG1lYW5faW1kYikpLCAzKSRzZWFzb25faWQgfiAiVG9wIDMgU2Vhc29uIiwNCiAgICAgIHNlYXNvbl9pZCA9PSBoZWFkKGFycmFuZ2Uoc2Vhc29uX2luZm8sIG1lYW5faW1kYiksIDEpJHNlYXNvbl9pZCB+ICJXb3JzdCBTZWFzb24iLA0KICAgICAgc2Vhc29uX2lkICVpbiUgaGVhZChhcnJhbmdlKHNlYXNvbl9pbmZvLCBtZWFuX2ltZGIpLCAzKSRzZWFzb25faWQgfiAiQm90dG9tIDMgU2Vhc29uIiwNCiAgICAgIFRSVUUgfiAiT3RoZXIiDQogICAgKSwNCiAgICByYW5raW5nID0gZmFjdG9yKHJhbmtpbmcsIGxldmVscyA9IGMoIkJlc3QgU2Vhc29uIiwgIlRvcCAzIFNlYXNvbiIsICJPdGhlciIsICJCb3R0b20gMyBTZWFzb24iLCAiV29yc3QgU2Vhc29uIikpDQogICkNCmBgYA0KDQpUaGUgYXZlcmFnZSBTY29vYnkgRG9vIFRWIHNlcmllcyBoYXMgYHIgbWVhbihjb3VudChzZWFzb25faW5mbywgc2VyaWVzX25hbWUpJG4pYCBzZWFzb25zLiBUaGF0J3Mgc28gZmV3IQ0KDQpgYGB7ciBzY29vYnkgc2Vhc29uIGltZGIgdGltZWxpbmV9DQojIHBsb3Qgc2Vhc29uIG92ZXIgdGltZQ0Kc2Vhc29uX2luZm8gJT4lDQogIHBsb3RfbHkoDQogICAgdHlwZSA9ICdiYXInLA0KICAgIG1vZGUgPSAnbWFya2VycycsDQogICAgeCA9IH5zZWFzb25faWQsDQogICAgeSA9IH5tZWFuX2ltZGIsDQogICAgY29sb3IgPSB+cmFua2luZywNCiAgICBjb2xvcnMgPSBjb2xvcl9zY2hlbWUxLA0KICAgIHRleHQgPSB+cGFzdGUwKCI8Yj4iLCBzZXJpZXNfbmFtZSwgIiAtIFNlYXNvbiAiLCBzZWFzb24sICI8L2I+PGJyPiIsDQogICAgICAgICAgICAgICAgICAgIjxpPkFpcmVkIGZyb20gIiwgc2Vhc29uX3N0YXJ0LCAiIHRvICIsIHNlYXNvbl9lbmQsICIgb24gIiwgbmV0d29yaywgIjwvaT48YnI+PGJyPiIsDQogICAgICAgICAgICAgICAgICAgIk1lYW4gSU1EYiBTY29yZTogIiwgcm91bmQobWVhbl9pbWRiLCAyKSwgIiAoTnVtYmVyIG9mIFJldmlld3M6ICIsIHJvdW5kKG1lYW5fZW5nYWdlbWVudCksICIpPGJyPiIsDQogICAgICAgICAgICAgICAgICAgIkVwaXNvZGVzOiAiLCBuX2VwaXNvZGVzLCAiPGJyPiIpDQogICkgJT4lDQogIGxheW91dCgNCiAgICB0aXRsZSA9ICdJTURiIFNjb3JlcyBmb3IgU2Nvb2J5IERvbyBTZWFzb25zIE92ZXIgVGltZScsDQogICAgeGF4aXMgPSBsaXN0KHRpdGxlID0gJ1NlcXVlbnRpYWwgU2Vhc29uIE51bWJlcicsIHNob3d0aWNrbGFiZWxzID0gRkFMU0UpLA0KICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICdNZWFuIElNRGIgU2NvcmUnKSwNCiAgICBsZWdlbmQgPSBsaXN0KG9yaWVudGF0aW9uID0gJ2gnLCB5ID0gLTAuMyksDQogICAgd2lkdGggPSA4MDAsDQogICAgaGVpZ2h0ID0gNDAwDQogICkNCmBgYA0KDQoNCiMjIyBFcGlzb2Rlcw0KDQpgYGB7ciBzY29vYnkgaW1kYiB0aW1lbGluZSwgZmlnLmhlaWdodD01LCBmaWcud2lkdGg9MTB9DQpzY29vYnlkb28gJT4lDQogIGxlZnRfam9pbihzZXJpZXNfaW5mbywgYnkgPSBjKCJzZXJpZXNfbmFtZSIsICJuZXR3b3JrIikpICU+JQ0KICAgIGZpbHRlcigNCiAgICAhKGlzLm5hKGltZGIpKSwNCiAgICBpbWRiICE9ICJOVUxMIiwNCiAgICBlbmdhZ2VtZW50ICE9ICJOVUxMIiwNCiAgICAhKHNlYXNvbiAlaW4lIGMoIk1vdmllIiwgIlNwZWNpYWwiKSkNCiAgKSAlPiUNCiAgcGxvdF9seSgNCiAgICB0eXBlID0gJ3NjYXR0ZXInLA0KICAgIG1vZGUgPSAnbWFya2VycycsDQogICAgeCA9IH5pbmRleCwNCiAgICB5ID0gfmltZGIsDQogICAgY29sb3IgPSB+cmFua2luZywNCiAgICBjb2xvcnMgPSBjb2xvcl9zY2hlbWUxLA0KICAgIHRleHQgPSB+cGFzdGUwKCI8Yj4iLCB0aXRsZSwgIjwvYj48YnI+IiwNCiAgICAgICAgICAgICAgICAgICI8aT5TZWFzb24gIiwgc2Vhc29uLCAiIG9mIFNlcmllcyAiLCBzZXJpZXNfbmFtZSwgIjwvaT48YnI+PGJyPiIsDQogICAgICAgICAgICAgICAgICAiQWlyZWQgIiwgZGF0ZV9haXJlZCwgIiBvbiAiLCBuZXR3b3JrLCAiPGJyPiIsDQogICAgICAgICAgICAgICAgICAiSU1EYiBTY29yZSAiLCBpbWRiLCAiIChOdW1iZXIgb2YgUmV2aWV3czogIiwgZW5nYWdlbWVudCwgIikiKQ0KICApICU+JQ0KICBsYXlvdXQoDQogICAgdGl0bGUgPSAnSU1EYiBzY29yZXMgb2YgU2Nvb2J5IERvbyBlcGlzb2RlcyBvdmVyIHRpbWUnLA0KICAgIHhheGlzID0gbGlzdCh0aXRsZSA9ICdFcGlzb2RlIEluZGV4IChhY2NvcmRpbmcgdG8gU2Nvb2J5cGVkaWEpJyksDQogICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gJ0lNRGIgU2NvcmUnKSwNCiAgICB3aWR0aCA9IDgwMCwNCiAgICBoZWlnaHQgPSA0MDAsDQogICAgbGVnZW5kID0gbGlzdChvcmllbnRhdGlvbiA9ICdoJywgeSA9IC0wLjMpDQogICkNCmBgYA0KDQojIyBNb25zdGVycyANCg0KIyMjIERpc3RyaWJ1dGlvbiBvZiBHZW5kZXINCg0KIyMjIERpc3RyaWJ1dGlvbiBCeSBUeXBlDQoNCkFuZCBzdWJ0eXBlPw0KDQpPciBTcGVjaWVzPw0KDQojIyMgV2hvIGNhdWdodCB0aGUgbW9uc3RlcnM/DQoNCiMjIyBXaG8gY2FwdHVyZWQgdGhlIG1vbnN0ZXJzPw0KDQojIyMgV2hvIHVubWFza2VkIHRoZSBtb25zdGVycz8NCg0KIyMjIFdoYXQgcGVyY2VudCBvZiBtb25zdGVycyBnb3QgYXdheT8NCg0KV2VyZSBub3QgY2FwdHVyZWQ/DQoNCiMjIFdoaWNoIGNoYXJhY3RlcnMgZ290IHRoZSBtb3N0IHNjb29ieSBzbmFja3M/DQoNCg==